package com.amsp.oa.common.valid;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @PROJECT_NAME: oa-admin
 * @DESCRIPTION: 不要自卑，你不比别人笨。不要自满，别人不比你笨。
 * 与其羡慕别人，不如提升自己。
 * 今日事，今日毕。
 * @USER: YanJiaWei
 * @VERSION: V1.0
 * @DATE: 2025/2/25 15:22
 */

public class AgeRangeValidator implements ConstraintValidator<AgeRange, String> {

    private static final Pattern AGE_RANGE_PATTERN = Pattern.compile("^(\\d{1,2})-(\\d{1,2})$");

    @Override
    public void initialize(AgeRange constraintAnnotation) {
        // 初始化方法，可根据需要实现
    }

    @Override
    public boolean isValid(String value, ConstraintValidatorContext context) {
        if (value == null || value.isEmpty()) {
            return true; // 若字段为空，认为校验通过，可根据实际需求调整
        }

        Matcher matcher = AGE_RANGE_PATTERN.matcher(value);
        if (matcher.matches()) {
            int minAge = Integer.parseInt(matcher.group(1));
            int maxAge = Integer.parseInt(matcher.group(2));
            return minAge >= 18 && maxAge <= 90 && maxAge <= 100;
        }
        return false;
    }
}
